package com.yanqu.xiuxian.crosssystem.manger.elementalbonds.entity;

import com.yanqu.xiuxian.db.MongoData;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
@Document("elemental_bonds_system_info")
public class ElementBondsSystemInfo extends MongoData {
    private long seasonStartTime;
    private long seasonEndTime;
    private int seasonId;
    private List<Integer> sceneList = new ArrayList<>(); //今日玩法
    private long sceneRefreshTime;
    private ConcurrentHashMap<Integer, Integer> sceneWeightMap = new ConcurrentHashMap<>();//概率累计
    private ConcurrentHashMap<Long, ElementalBondsServerWaitData> serverWaitMap = new ConcurrentHashMap<>();//服务器等待时间
    private long groupTime;
    private long createFinalRankTime;

    public long getSeasonStartTime() {
        return seasonStartTime;
    }

    public void setSeasonStartTime(long seasonStartTime) {
        if (!Objects.equals(this.seasonStartTime, seasonStartTime)) {
            this.seasonStartTime = seasonStartTime;
            setChangeState();
        }
    }

    public long getSeasonEndTime() {
        return seasonEndTime;
    }

    public void setSeasonEndTime(long seasonEndTime) {
        if (!Objects.equals(this.seasonEndTime, seasonEndTime)) {
            this.seasonEndTime = seasonEndTime;
            setChangeState();
        }
    }

    public int getSeasonId() {
        return seasonId;
    }

    public void setSeasonId(int seasonId) {
        if (!Objects.equals(this.seasonId, seasonId)) {
            this.seasonId = seasonId;
            setChangeState();
        }
    }

    public List<Integer> getSceneList() {
        return sceneList;
    }

    public void setSceneList(List<Integer> sceneList) {
        this.sceneList = sceneList;
        setChangeState();
    }

    public long getSceneRefreshTime() {
        return sceneRefreshTime;
    }

    public void setSceneRefreshTime(long sceneRefreshTime) {
        if (!Objects.equals(this.sceneRefreshTime, sceneRefreshTime)) {
            this.sceneRefreshTime = sceneRefreshTime;
            setChangeState();
        }
    }

    public ConcurrentHashMap<Integer, Integer> getSceneWeightMap() {
        return sceneWeightMap;
    }

    public void setSceneWeightMap(ConcurrentHashMap<Integer, Integer> sceneWeightMap) {
        if (!Objects.equals(this.sceneWeightMap, sceneWeightMap)) {
            this.sceneWeightMap = sceneWeightMap;
            setChangeState();
        }
    }

    public ConcurrentHashMap<Long, ElementalBondsServerWaitData> getServerWaitMap() {
        return serverWaitMap;
    }

    public void setServerWaitMap(ConcurrentHashMap<Long, ElementalBondsServerWaitData> serverWaitMap) {
        if (!Objects.equals(this.serverWaitMap, serverWaitMap)) {
            this.serverWaitMap = serverWaitMap;
            setChangeState();
        }
    }

    public long getGroupTime() {
        return groupTime;
    }

    public void setGroupTime(long groupTime) {
        if (!Objects.equals(this.groupTime, groupTime)) {
            this.groupTime = groupTime;
            setChangeState();
        }
    }

    public long getCreateFinalRankTime() {
        return createFinalRankTime;
    }

    public void setCreateFinalRankTime(long createFinalRankTime) {
        if (!Objects.equals(this.createFinalRankTime, createFinalRankTime)) {
            this.createFinalRankTime = createFinalRankTime;
            setChangeState();
        }
    }
}
